在開始系列文章之前,先簡單聊聊為何想寫 Tauri 這個主題~
要說明動機,就不得不先介紹一下我待的這間 AI 新創公司的背景。
由於公司還在發展階段,很多方向都還在嘗試中,這導致產品之間的變動性比較大,也因此,同一套功能(或產品)可能會需要視情況做成網頁、桌面應用程式,或甚至是手機 APP。
雖然多方嘗試可以提高談成合作的機會,但同時,問題也很明顯:公司必須花很多時間在不同平台開發相同功能,甚至這個功能最後也不一定會被採用。因此,如果能用相同的程式碼,部屬在不同的平台,那就會是一個值得考慮的選擇。
經過一段時間的探索與嘗試,最後我們選擇的作法是:先使用 Vue 開發網頁 (前端),如果有需要,就再用 Electron 打包成桌面應用程式。而手機 APP 的部分則使用 Flutter,這樣 Android 和 IOS 就不用寫兩套程式碼了。
而我在公司就是負責使用 Vue + Electron 開發前端,Python 開發後端。至於手機 APP,就交給其他同事處理 XD
在某次讀書會中,為了向別人介紹 Electron,想說好像也應該要提一下有哪些類似的套件,於是在查資料的過程中,知道了 Tauri 這個套件 (那時候 Tauri 還只是 1.0)。
除了 Electron、Tauri 之外,還有很多,有興趣了解的人可以看這個比較表
後來,在 2023 ViteConf 中,我在眾多議程中發現 Tauri 的身影,並得知它之後可以支援手機 APP,甚至是 Android、IOS 都可以。
我心想:哇!這樣不就可以用一個工具走遍天下面對所有需求了嗎?!
之後,我就一直很期待它發布 2.0 版,去年下半年三不五時就上去看一下 Github,看看到底什麼時候會 release XD
想說之後有空的話一定要找機會試試看,然後... 就沒有然後了
只能說,下次一定。
好不容易前陣子有接到一個新的專案需要開發手機 APP,因此我就決定趁這個機會來試試看 Tauri 了 (畢竟都 release 2.0 好幾個月了,bug 應該少很多了),也因此,趁這個機會把這段時間所學,整理成一個比較好入門的教學系列文章。
以下是這系列文章的 Roadmap:
首先,基礎篇會先從介紹一些基礎概念,並教大家怎麼建置開發環境 (步驟有點多),讓大家可以盡快看到開發畫面。接下來,再回頭說明 Tauri 比較核心的架構與原理。之後就是比較好玩 (?) 的開發篇,會教大家進行各種設定,並介紹幾個我覺得很值得介紹的 plugin。最後,再教大家如何把開發好的應用程式打包和上架到商店。
至於 roadmap 中紅色的部分... 之後再看有沒有機會回頭再補充 (我沒有 Mac QQ)
這系列文章會盡量著重在 Tauri 本身,你「應該」會學到:
「應該」不會學到:
希望各位讀完之後會有收穫~